/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package bacoopc.persistencia;

import bacoopc.ConexaoOPC;
import bacoopc.Projeto;
import bacoopc.excecoes.ExcecaoBacoOpc;
import bacoopc.gui.entidades.AlgoritmoInterface;
import bacoopc.gui.entidades.ProjetoInterface;
import java.util.List;

/**
 *
 * @author CrisGC
 */
public class DAOBacoOpc {

    /** Única instância da classe */
    public static DAOBacoOpc instance = null ;

    public static DAOBacoOpc getInstance() {
        if ( DAOBacoOpc.instance ==  null ) {
            DAOBacoOpc.instance = new DAOBacoOpc() ;
        }
        return DAOBacoOpc.instance ;
    }

    private DAOBacoOpc() { }

    /**
     * Adicionar projeto ao Banco de Dados
     *
     * @param proj projeto a ser adicionado
     */
    public void adicionar(Projeto proj) {
        PersistenciaProjeto persistenciaProj = new PersistenciaProjeto() ;
        persistenciaProj.inserirProjeto( proj );
    }

    /**
     * Adicionar projeto ao Banco de Dados
     *
     * @param proj projeto a ser adicionado
     */
    public void adicionar(ConexaoOPC proj) {
        PersistenciaServidorOPC servidorPersistencia = new PersistenciaServidorOPC() ;
        servidorPersistencia.inserirServidorOPC(proj);
    }

    /**
     * Algoritmo de controle
     *
     * @param novoAlgoritmo
     */
    public void adicionar( AlgoritmoInterface novoAlgoritmo ) {
        PersistenciaAlgoritmo persistencia = new PersistenciaAlgoritmo() ;
        persistencia.inserirAlgoritmo(novoAlgoritmo);
    }

    public List<ProjetoInterface> getProjetos() throws ExcecaoBacoOpc {
        PersistenciaProjeto pa = new PersistenciaProjeto();
        List<ProjetoInterface> rs = pa.getProjetos() ;
        return rs ;
    }


}
